package com.niuwa.p2p.service.messageTemplate;

import java.util.List;
import java.util.Map;

import com.niuwa.p2p.core.enums.MessageTemplateEnum;
import com.niuwa.p2p.core.enums.MsgSourceEnum;
import com.niuwa.p2p.entity.message.MsgTemplate;

/**
 * @author futianliang
 * @date 2015年4月15日
 */
public interface IMessageTemplateService {
	/**
	 * 
	 * @param templateEnum标识
	 * @param messageType 站内信，短信，邮件，content要根据相应的type加上对应的头和尾
	 * @param paras 调用端传过来的数据源，MsgSourceEnum数据源key,Object数据源value
	 * 返回的map的key是对应传过来的messageType,若本模板支持传过来的messageType,则返回的是此消息模板内容加上此类型所要的首尾内容，
	 * 若本模板不支持传过来的messageType，对应的内容为：failed:失败的相应原因
	 * 若messageType传过来是null，直接返回此模板的内容，不做任何数据源上的替换，key为content
	 * @return 
	 */
	public Map<String, String> fetchMessageTemplateContentByType(MessageTemplateEnum templateEnum, String[] messageType, Map<MsgSourceEnum, Object> paras);
  
	/**
	 * 能过excel动状生成模板，生成中有异常object为String类型错误信息，正常返回temp对象的list
	 * @param filePath
	 * @return
	 */
	public Map<String, Object> produceTemplateByExcel(String filePath);
    /**
     * 批量插入
     * @param object
     */
	public void addMessageTemplateBatch(List<MsgTemplate> templates,Long cusId);
    /**
     * 清空数据库，在每次导入模板excel前导入
     */
    public void truncate();
    /**
     * 获取模板列表
     * @param paras
     * @return
     */
    public List<MsgTemplate> getMessageTemplateList(Map<String, Object> paras);
    /**
     * 获取模板数量
     * @param paras
     * @return
     */
    public int getMessageTemplateCount(Map<String, Object> paras);
    public MsgTemplate selectByPrimaryKey(String tempNo);
    
}
